<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
</head>

<body>
    <script>
        let num = 10;
        let num2 = new Number(20);
        console.log(num, num2);

        // （
        // 在 js 中一切皆对象
        // 比如说数组 object number string 等等 这些都是内置对象

        // 那么怎么自定义对象
        // es5 的时候没有像后台语言一样的 class 这个概念 所以我们用函数当作构造函数来创建对象）
        // 在面向对象的写法中 属性放在函数里 方法放在原型上 这样就能实现属性私有 方法共享
        // 方法挂载在原型上就可以被所有的实例化对象使用
        // 在es5中当一个函数 被当作 创建面向对象的 构造器去用的时候 它就变成了一个构造函数 一般来说 首字母大写 通过new 关键字调用
        function Houyi(color) {
            this.color = color;
        }
        Houyi.prototype.kill = function() {
            alert("后羿会射箭，这个后羿的头发颜色是" + this.color);
        };
        let sundy = new Houyi("金色");
        let xiaoming = new Houyi("白色");
        // alert(sundy.color);
        // alert(xiaoming.color);
        sundy.kill();
    </script>
</body>

</html>